export type OrNull<T = null> = T extends null | undefined ? null : T;

export type PickType<T, K extends keyof T> = T[K];

export type PickSome<T, K extends T> = K;

export type Array2Or<A extends unknown[]> = A extends [infer First, ...infer Other] ? First | Array2Or<Other> : never;
